﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;

namespace MvcApplication1.Controllers
{
    public class EstadisticasController : Controller
    {
        //
        // GET: /Estadisticas/
        public RepositorioLiga repositorioLigas = new RepositorioLiga();

        public ActionResult Index()
        {
            Liga ligaActual = repositorioLigas.getLiga( Convert.ToInt32(HttpContext.Request.Cookies["IdLiga"].Value));
            List<Equipo> equipos = ligaActual.Equipos.ToList();

            //ordeno los jugadores segun goles convertidos
            List<Jugadore> jugadores = new List<Jugadore>();
            foreach (Equipo e in equipos)
                jugadores.AddRange(e.Jugadores);
            jugadores.Sort(new Comparison<Jugadore>(MetodoOrdenadorGoleadores));
            ViewData["Jugadores"] = jugadores;

            //ordeno equipos por puntos
            equipos.Sort(new Comparison<Equipo>(MetodoOrdenadorEquipos));

            return View(equipos);
        }

        public int MetodoOrdenadorGoleadores(Jugadore a, Jugadore b)
        {
            if (a.GolesAcumulados > b.GolesAcumulados)
                return -1;
            else
                return 1;
        }

        public int MetodoOrdenadorEquipos(Equipo a, Equipo b)
        {
            //criterio por puntos
            if(a.Puntos > b.Puntos)
                return -1;
            if (a.Puntos < b.Puntos)
                return 1;
            if (a.Puntos == b.Puntos)
            {
                //criterio por DG
                if (a.DG > b.DG)
                    return -1;
                if(a.DG < b.DG)
                    return 1;
                if (a.DG == b.DG)
                {
                    //Criterio por mayores goles a favor
                    if (a.GF > b.GF)
                        return -1;
                    if (a.GF < b.GF)
                        return 1;
                }
            }
            return 0;
        }

    }
}
